Session 1
Friday, May 3, 2024
Some initial course info:
You can find links to our draft schedule and all our course materials through our wiki.
https://github.com/CefasRepRes/Git_Training/wiki/Schedule
We will take breaks during the day!
Feel free to interrupt and ask questions as we go.
H&S…
How many people have directories that include files like this?
File_16062020.doc, File_30062020.doc, …File_old.doc, File_new.docFile.doc.origFile.doc, File_test.docVersion control allows you to:
Back up your code.
Keep track of changes.
Share your code with others.
Develop code with collaborators.
As code is backed up, can be confident in testing new ideas.
Version control software ensures that changes are attributable to individuals.
Code can be shared along with the documentation and file history.
Documentation can explain how and why the code should be used.
Can create fixed versions/releases, along with DOIs.
All the above provides “quality assurance” in the final product.
Many options out there…
https://en.wikipedia.org/wiki/List_of_version-control_software
All are agnostic in terms of the programming language
Client-server model :: all users share a single code repository.
e.g., SVN (subversion)
Distributed model :: all users have their own local repositories. Changes can be shared/merged as a separate step.
e.g., Git
What we’re using today!
Well supported, large user community, e.g.,
“No other technology is as widely used as Git.”
From Stack Overflow user survey (2022)
NB. These are two different things
Git = version control software.
GitHub = web-based repository hosting service*.
i.e. Git is the software behind the GitHub web service.
You can use Git without GitHub. However, GitHub provides useful tools (especially for sharing your code).
* Other providers exist, but GitHub is the most popular, e.g.: